package com.lutzyt.delivery.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lutzyt.delivery.bean.Order;

import java.util.List;

/**
 *
 */
public interface OrderService extends IService<Order> {

  /**
   * 通过ID查询单个
   *
   * @param id ID
   * @return {@link Order}
   */
  Order findById(Integer id);

  /**
   * 分页查询
   *
   * @param pageNum  页号
   * @param pageSize 每页大小
   * @return {@link Order}
   */
  IPage<Order> findByPage(int pageNum, int pageSize);

  /**
   * 新增
   *
   * @param order
   */
  void insert(Order order);

  /**
   * 修改
   *
   * @param order
   */
  void update(Order order);

  /**
   * 通过ID删除单个
   *
   * @param id ID
   */
  void deleteById(Integer id);

  /**
   * 根据客户id查询订单
   * @param id
   * @return
   */
  List<Order> findByCustomerId(Integer id);

  /**
   * 根据骑手id查询订单
   * @param id
   * @return
   */
  List<Order> findByHorsemanId(Integer id);

  /**
   * 获取正在等待骑手接单的序列
   * @return
   */
  List<Order> initList();

  /**
   * 骑手接单
   * @param id
   * @param orderId
   */
  void takeIn(String id, String orderId);

  /**
   * 确认送达
   * @param id
   */
  void delivery(Integer id);

  /**
   * 商家接单
   * @param id
   */
  void replay(Integer id);
}